package com.running.base.run.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class FudaoRecordExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public FudaoRecordExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andFudaoUserIsNull() {
            addCriterion("fudao_user is null");
            return (Criteria) this;
        }

        public Criteria andFudaoUserIsNotNull() {
            addCriterion("fudao_user is not null");
            return (Criteria) this;
        }

        public Criteria andFudaoUserEqualTo(String value) {
            addCriterion("fudao_user =", value, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserNotEqualTo(String value) {
            addCriterion("fudao_user <>", value, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserGreaterThan(String value) {
            addCriterion("fudao_user >", value, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserGreaterThanOrEqualTo(String value) {
            addCriterion("fudao_user >=", value, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserLessThan(String value) {
            addCriterion("fudao_user <", value, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserLessThanOrEqualTo(String value) {
            addCriterion("fudao_user <=", value, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserLike(String value) {
            addCriterion("fudao_user like", value, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserNotLike(String value) {
            addCriterion("fudao_user not like", value, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserIn(List<String> values) {
            addCriterion("fudao_user in", values, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserNotIn(List<String> values) {
            addCriterion("fudao_user not in", values, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserBetween(String value1, String value2) {
            addCriterion("fudao_user between", value1, value2, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoUserNotBetween(String value1, String value2) {
            addCriterion("fudao_user not between", value1, value2, "fudaoUser");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceIsNull() {
            addCriterion("fudao_price is null");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceIsNotNull() {
            addCriterion("fudao_price is not null");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceEqualTo(Long value) {
            addCriterion("fudao_price =", value, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceNotEqualTo(Long value) {
            addCriterion("fudao_price <>", value, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceGreaterThan(Long value) {
            addCriterion("fudao_price >", value, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceGreaterThanOrEqualTo(Long value) {
            addCriterion("fudao_price >=", value, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceLessThan(Long value) {
            addCriterion("fudao_price <", value, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceLessThanOrEqualTo(Long value) {
            addCriterion("fudao_price <=", value, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceIn(List<Long> values) {
            addCriterion("fudao_price in", values, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceNotIn(List<Long> values) {
            addCriterion("fudao_price not in", values, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceBetween(Long value1, Long value2) {
            addCriterion("fudao_price between", value1, value2, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoPriceNotBetween(Long value1, Long value2) {
            addCriterion("fudao_price not between", value1, value2, "fudaoPrice");
            return (Criteria) this;
        }

        public Criteria andFudaoContentIsNull() {
            addCriterion("fudao_content is null");
            return (Criteria) this;
        }

        public Criteria andFudaoContentIsNotNull() {
            addCriterion("fudao_content is not null");
            return (Criteria) this;
        }

        public Criteria andFudaoContentEqualTo(String value) {
            addCriterion("fudao_content =", value, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentNotEqualTo(String value) {
            addCriterion("fudao_content <>", value, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentGreaterThan(String value) {
            addCriterion("fudao_content >", value, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentGreaterThanOrEqualTo(String value) {
            addCriterion("fudao_content >=", value, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentLessThan(String value) {
            addCriterion("fudao_content <", value, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentLessThanOrEqualTo(String value) {
            addCriterion("fudao_content <=", value, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentLike(String value) {
            addCriterion("fudao_content like", value, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentNotLike(String value) {
            addCriterion("fudao_content not like", value, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentIn(List<String> values) {
            addCriterion("fudao_content in", values, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentNotIn(List<String> values) {
            addCriterion("fudao_content not in", values, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentBetween(String value1, String value2) {
            addCriterion("fudao_content between", value1, value2, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoContentNotBetween(String value1, String value2) {
            addCriterion("fudao_content not between", value1, value2, "fudaoContent");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileIsNull() {
            addCriterion("fudao_profile is null");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileIsNotNull() {
            addCriterion("fudao_profile is not null");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileEqualTo(String value) {
            addCriterion("fudao_profile =", value, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileNotEqualTo(String value) {
            addCriterion("fudao_profile <>", value, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileGreaterThan(String value) {
            addCriterion("fudao_profile >", value, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileGreaterThanOrEqualTo(String value) {
            addCriterion("fudao_profile >=", value, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileLessThan(String value) {
            addCriterion("fudao_profile <", value, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileLessThanOrEqualTo(String value) {
            addCriterion("fudao_profile <=", value, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileLike(String value) {
            addCriterion("fudao_profile like", value, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileNotLike(String value) {
            addCriterion("fudao_profile not like", value, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileIn(List<String> values) {
            addCriterion("fudao_profile in", values, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileNotIn(List<String> values) {
            addCriterion("fudao_profile not in", values, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileBetween(String value1, String value2) {
            addCriterion("fudao_profile between", value1, value2, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoProfileNotBetween(String value1, String value2) {
            addCriterion("fudao_profile not between", value1, value2, "fudaoProfile");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherIsNull() {
            addCriterion("fudao_teacher is null");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherIsNotNull() {
            addCriterion("fudao_teacher is not null");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherEqualTo(String value) {
            addCriterion("fudao_teacher =", value, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherNotEqualTo(String value) {
            addCriterion("fudao_teacher <>", value, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherGreaterThan(String value) {
            addCriterion("fudao_teacher >", value, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherGreaterThanOrEqualTo(String value) {
            addCriterion("fudao_teacher >=", value, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherLessThan(String value) {
            addCriterion("fudao_teacher <", value, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherLessThanOrEqualTo(String value) {
            addCriterion("fudao_teacher <=", value, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherLike(String value) {
            addCriterion("fudao_teacher like", value, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherNotLike(String value) {
            addCriterion("fudao_teacher not like", value, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherIn(List<String> values) {
            addCriterion("fudao_teacher in", values, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherNotIn(List<String> values) {
            addCriterion("fudao_teacher not in", values, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherBetween(String value1, String value2) {
            addCriterion("fudao_teacher between", value1, value2, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andFudaoTeacherNotBetween(String value1, String value2) {
            addCriterion("fudao_teacher not between", value1, value2, "fudaoTeacher");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeIsNull() {
            addCriterion("xianyu_datetime is null");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeIsNotNull() {
            addCriterion("xianyu_datetime is not null");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeEqualTo(Date value) {
            addCriterion("xianyu_datetime =", value, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeNotEqualTo(Date value) {
            addCriterion("xianyu_datetime <>", value, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeGreaterThan(Date value) {
            addCriterion("xianyu_datetime >", value, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("xianyu_datetime >=", value, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeLessThan(Date value) {
            addCriterion("xianyu_datetime <", value, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeLessThanOrEqualTo(Date value) {
            addCriterion("xianyu_datetime <=", value, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeIn(List<Date> values) {
            addCriterion("xianyu_datetime in", values, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeNotIn(List<Date> values) {
            addCriterion("xianyu_datetime not in", values, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeBetween(Date value1, Date value2) {
            addCriterion("xianyu_datetime between", value1, value2, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andXianyuDatetimeNotBetween(Date value1, Date value2) {
            addCriterion("xianyu_datetime not between", value1, value2, "xianyuDatetime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeIsNull() {
            addCriterion("fudao_begin_time is null");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeIsNotNull() {
            addCriterion("fudao_begin_time is not null");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeEqualTo(Date value) {
            addCriterion("fudao_begin_time =", value, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeNotEqualTo(Date value) {
            addCriterion("fudao_begin_time <>", value, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeGreaterThan(Date value) {
            addCriterion("fudao_begin_time >", value, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("fudao_begin_time >=", value, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeLessThan(Date value) {
            addCriterion("fudao_begin_time <", value, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeLessThanOrEqualTo(Date value) {
            addCriterion("fudao_begin_time <=", value, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeIn(List<Date> values) {
            addCriterion("fudao_begin_time in", values, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeNotIn(List<Date> values) {
            addCriterion("fudao_begin_time not in", values, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeBetween(Date value1, Date value2) {
            addCriterion("fudao_begin_time between", value1, value2, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoBeginTimeNotBetween(Date value1, Date value2) {
            addCriterion("fudao_begin_time not between", value1, value2, "fudaoBeginTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeIsNull() {
            addCriterion("fudao_end_time is null");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeIsNotNull() {
            addCriterion("fudao_end_time is not null");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeEqualTo(Date value) {
            addCriterion("fudao_end_time =", value, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeNotEqualTo(Date value) {
            addCriterion("fudao_end_time <>", value, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeGreaterThan(Date value) {
            addCriterion("fudao_end_time >", value, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("fudao_end_time >=", value, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeLessThan(Date value) {
            addCriterion("fudao_end_time <", value, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("fudao_end_time <=", value, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeIn(List<Date> values) {
            addCriterion("fudao_end_time in", values, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeNotIn(List<Date> values) {
            addCriterion("fudao_end_time not in", values, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeBetween(Date value1, Date value2) {
            addCriterion("fudao_end_time between", value1, value2, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andFudaoEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("fudao_end_time not between", value1, value2, "fudaoEndTime");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}